home *** CD-ROM | disk | FTP | other *** search
- UNIT Lite;
- {***************************************************************************}
- {* *}
- {* Unit Lite - Routines to produce high intensity backgrounds *}
- {* *}
- {* AUTHOR: Darryl Friesen *}
- {* CREATED: 01-JUN-1991 *}
- {* LAST MODIFIED: 06-JAN-1992 *}
- {* CURRENT VERSION: Version 1.0.1 *}
- {* COMPILED USING: Turbo Pascal 6.0 *}
- {* *}
- {* *}
- {* UNIT DEPENDANCIES: *}
- {* *}
- {* INTERFACE: [none] *}
- {* IMPLEMENTATION: DOS *}
- {* *}
- {***************************************************************************}
- {* *}
- {* REVISION HISTORY *}
- {* ---------------- *}
- {* 01-JUN-1991 - Creation of VERSION 1.00 *}
- {* 06-JAN-1992 - Version 1.0.1 *}
- {* Fixed a bug in the BlinkOn routine. On a VGA machine *}
- {* the blink state was turned off instead of on. *}
- {* *}
- {***************************************************************************}
-
- {=========================================================================}
- INTERFACE
- {=========================================================================}
-
- Procedure BlinkOff;
- Procedure BlinkOn;
- Function EGA: Boolean;
-
-
- {=========================================================================}
- IMPLEMENTATION
- {=========================================================================}
-
- USES DOS;
-
-
- {================================================================}
- PROCEDURE SetBlinkState(State : BOOLEAN);
- {================================================================}
- {================================================================}
-
- VAR
- ModeReg : BYTE;
- ModeRegPort : WORD;
-
- Begin
- INLINE($FA); { CLI }
- ModeRegPort:=MEMW[$0040:$0063]+4;
- ModeReg:=MEM[$0040:$0065];
- If State Then
- ModeReg:=ModeReg OR $20
- Else
- ModeReg:=ModeReg AND $DF;
-
- Port[ModeRegPort] := ModeReg;
- MEM[$0040:$0065]:= ModeReg;
- INLINE($FB) { STI }
- END;
-
-
- {================================================================}
- FUNCTION EGA : BOOLEAN;
- {================================================================}
- {================================================================}
-
- VAR
- Regs : Registers;
-
- Begin
- Regs.AH:=$12;
- Regs.BX:=$FF10;
- INTR( $10, Regs );
- EGA := (Regs.BX AND $FEFC=0)
- End;
-
-
- {================================================================}
- PROCEDURE SetEGABlinkState(State : BOOLEAN);
- {================================================================}
- {================================================================}
-
- VAR
- Regs: Registers;
-
- Begin
- Regs.AX := $1003;
- Regs.BL := ORD(State);
- INTR( $10, Regs )
- End;
-
-
- {================================================================}
- PROCEDURE BlinkOn;
- {================================================================}
- {================================================================}
-
- Begin
- If EGA Then
- SetEGABlinkState(TRUE)
- Else
- SetBlinkState(TRUE)
- End;
-
-
- {================================================================}
- PROCEDURE BlinkOff;
- {================================================================}
- {================================================================}
-
- Begin
- If EGA Then
- SetEGABlinkState(FALSE)
- Else
- SetBlinkState(FALSE)
- End;
-
-
- {=========================================================================}
-
- End.